Regras do Fork
Pull
Conectores e blocos
-
Exclusão de conector e bloco.
-
Caso conector tenha sido criado na main e venha na criação do fork.
- CRIA FORK > APAGA CONECTOR NA MAIN > FAZ PULL.
- Resultado: deve apagar o conector/bloco.
-
Caso conector seja excluído no fork e exista na main.
- CRIA FORK > EXCLUI CONECTOR NO FORK > FAZ PULL.
- Resultado: deve recriar o conector/bloco dentro do fork.
-
-
Criação de conector e bloco.
- Caso conector/bloco tenha sido criado no fork.
- CRIA FORK > CRIA CONECTOR OU BLOCO NO FORK > FAZ PULL.
- Resultado: não deve apagar o conector e caso exista um conector na main, ele deve ficar com dois conectores e ao fazer merge, deve aparecer o modal de duplo conector.
- Resultado: não deve apagar o bloco.
- Caso conector/bloco tenha sido criado no fork.
-
Conectores Duplicados.
- Caso tenha conector duplicado na origem.
- Excluir conector de condicional > Coloca conector no bloco condicional > faz o pull no fork alterado> faz o merge com outro fork > tela de conector duplos > mergiar.
- Resultado: no destino, não será duplicado o conector, mesmo o usuário aceitando que possui item duplicado.
- Caso tenha conector duplicado na origem.
Merge Fork x Main
Blocos e Conectores
- Ao mergiar o fork com a main, a main deverá ficar idêntica ao fork salvo algumas exceções:
- Case 1
- Se houver algum bloco criado diretamente dentro da main depois que o fork tenha sido criado, esse bloco não deve ser apagado, ou seja, o merge irá jogar o fork para main e manter os blocos e conectores que foram criados na main.
- Case 2
- Se eu tiver 2 forks, mergiar o primeiro e depois mergiar o segundo sem fazer o pull, a main ficará exatamente igual ao segundo, caso o segundo esteja faltando algo vai subir errado pra main, sendo assim, O usuário deve se atentar para sempre fazer um pull antes de fazer o merge do fork.
- Case 1
Cases
-
Cria fork > Altera main > Faz pull > Altera fork > Merge main.
- Não deve dar conflito.
-
Cria fork > Altera main > Faz pull > Merge main.
- Não pode ter alteração.
-
Cria fork > Altera main > Merge Main.
- Tem que ter conflito.
-
Cria fork > Altera main > Altera fork > Merge main.
- Tem que ter conflito.
-
Cria fork > Altera fork - Merge main.
- Não tem conflito.
-
Cria fork > Altera main > Faz pull > Altera fork > Merge com outro fork.
- Tem que ter conflito.
-
Cria fork > Altera main > Faz pull > Altera fork com bloco novo > Altera fork com bloco existente > Merge com outro fork.
- Tem que ter conflito.
Merge Fork x Fork
Blocos e Conectores
- Criação e exclusão de conector e bloco
- Ao realizar o merge esses valores serão levados para os outros forks, com isso, evitamos a duplicação de blocos e conectores ao mergiar entre forks pois conseguimos comparar se o bloco origem tem o mesmo originalId do destino.
- Outra regra é que blocos e conectores criados dentro do próprio fork nunca deverão ser excluídos ao receberem merges de outros forks.
- Ponto importante é que após realizar o merge com a Main, caso o usuário crie um novo fork, os blocos desse fork irão perder as referências com os forks que ainda não foram mergiados, com isso caso haja um merge entre o fork novo e outros existentes irá ocorrer duplicação de blocos e conectores.
Compare
- Exclusão de conectores
- Não contabilizada, sendo assim, se a pessoa fizer merge apenas excluindo o conector não irá contabilizar, ficando com "0 alterações".
- Criação de conector.
- Caso o conector for adicionado, é para contabilizar.